#pragma once
#include "../Utilities/utilities.h"
#include "Math.h"
#include "BaseCamera.h"

class SimpleCamera : public BaseCamera
{
private:
	GLfloat m_fRotX;
	GLfloat m_fRotY;
	GLfloat m_fRotZ;
protected:
	virtual void CalculateWVMatrix();
public:
	SimpleCamera();
	virtual Matrix GetWorldMatrix();
	virtual Matrix GetViewMatrix();

	///Update Camera
	virtual void Update(ESContext *esContext, GLfloat deltaTime);

	///Move Camera
	virtual void MoveLeft(GLfloat offset);
	virtual void MoveRight(GLfloat offset);
	virtual void MoveUp(GLfloat offset);
	virtual void MoveDown(GLfloat offset);
	virtual void MoveForward(GLfloat offset);
	virtual void MoveBackward(GLfloat offset);
	virtual void RotateLeft(GLfloat offset);
	virtual void RotateRight(GLfloat offset);
	virtual void RotateUp(GLfloat offset);
	virtual void RotateDown(GLfloat offset);
};